通过光纤帧采集器向 CoaXPress 进行数据转发

数据转发imaFlex 2 Dual 100 平台

简短说明

文件: \Examples\Acquisition\DataForwarding\iF2D100\DFExample_Host.vad
\Examples\Acquisition\DataForwarding\iF2D100\DFExample_Client_MidPosition.vad
\Examples\Acquisition\DataForwarding\iF2D100\DFExample_Client_EndPosition.vad
\Examples\Acquisition\DataForwarding\iF2D100\hap\DFExample_Host.hap\DFExample_Host.hap
\Examples\Acquisition\DataForwarding\iF2D100\hap\DFExample_Client_MidPosition.hap
\Examples\Acquisition\DataForwarding\iF2D100\hap\DFExample_Client_EndPosition.hap
\示例\采集\数据转发\SDK

默认平台: iF2D100

简要说明

数据转发实现imaFlex 2 Dual 100 平台已展示。

典型的采用菊花链式帧采集器的数据转发环境如下所示:

菊花链式帧捕获器(数据转发)

图 233. 菊花链式帧捕获器(数据转发)


左侧第一个设备作为主机(主设备),连接后续的客户端(从设备)。主机设备接收到的数据(例如来自摄像头的数据)会转发给客户端。根据具体应用场景,客户端可以转发完整的原始数据流,也可以只转发其中的一部分。这种数据传递方式会一直延续到菊花链的末端。

Basler 的数据转发能力imaFlex 2 Dual 100 不仅允许转发图像数据,还允许转发元数据,例如用于远程控制客户端设备。以下部分将通过一个基本示例来演示这两个方面。

使用方法

这些示例小程序可与相应的数据转发 SDK 示例应用程序一起使用。 DFMaster 和 DFSlave因此,无需手动加载小程序,例如通过…… microDisplay X是必需的。SDK 示例应用程序会自动加载小程序,所有用户交互都完全通过宿主(主)应用程序完成。

有关使用帧捕获器 SDK 脚本的信息,请参阅位于以下位置的相应脚本文档: examples\Acquisition\DataForwarding\SDK 在VisualApplets 安装目录。

数据转发示例 Applet

示例小程序演示了数据转发,并考虑了以下两个方面:

  1. 将图像数据从主机传输到其后续客户端。

  2. 远程控制和监控客户端。

数据转发 VisualApplets Applet

图像数据传输简单易行,每个示例小程序都通过图像路径展示了这一点。

远程控制和监控需要更多努力,因为您无法使用来自 VisualAopplet 链接的数据(例如传入的控制命令)动态更改 applet 参数。您可以通过使用以下方式解决此限制: VisualApplets 事件系统。远程控制元数据路径体现了这种方法。

尽管小程序设计将两条路径分开显示,但实际上这两条路径共享同一光纤资源,用于传输同一对设备的数据。图像数据通过编号为0到3的四条光纤通道传输,而远程控制数据/元数据则使用同一光纤模块的0号通道。

换句话说,光纤模块的 2×4 通道以双向方式连接两个设备,用于传输图像和元数据。相应的转发算子DFTxImage 、 DFTxMeta 、 DFRxImage和DFRxMeta在内部管理这一过程。

下表总结了示例中实现的数据转发连接。

光纤端口 主机 中端客户 终端客户
port0 预留(例如相机) 上一页 上一页
端口1 下一个 下一个 —

表 17. 数据转发连接(光纤端口)


有关示例设计文件处理结构的详细文档,请参阅相应部分的注释框。 *.vad 设计。

VisualApplets 事件系统与数据转发远程控制

使用……的想法VisualApplets 远程控制事件系统是Framegrabber SDK API 提供用于访问运算符和 applet 参数的例程。通过VisualApplets 事件系统可以将带有有效载荷数据的事件从 applet 发送到主机 PC,事件监控 SDK 应用程序可以对有效载荷做出反应。

基于以上考虑,遥控信号流程如下:

  • 主机小程序向客户端发送命令。

  • 在客户端小程序中,每个接收到的控制命令都会触发一个事件(带有有效载荷)。

  • 该事件由帧捕获器操作系统驱动程序捕获。

  • 事件监控 SDK 应用程序根据事件有效负载的解释执行 SDK 例程。

用户定义的远程控制通信协议

数据转发示例使用用户自定义通信协议。在此范围内,命令事务被称为消息。消息的结构如下所示:

位索引 描述 大小(位)
[55] 读非写标志 1
[54:48] 客户端(从设备)地址 7
[47:32] 软件可访问的注册地址 16
[31:0] 软件可访问的注册数据 32

表 18. 消息位布局


一条消息总共有 56 位,这与DFTxMeta和DFRxMeta运算符的一个数据字的大小相对应。

消息触发器用于发起消息发送。SDK 宿主应用程序负责配置消息内容和触发器。

一般来说,在……上传输的数据VisualApplets 链路可以采用不同的处理方式。以数据转发为例,以下两种处理方式较为适用:

  1. 该系统直接使用命令数据位。例如,它将一个专用位转换为一个 VALT_SIGNAL 并将其路由至 GPO 银行。

  2. 系统触发VisualApplets 事件,并且可以包含从远程命令中提取的有效载荷数据。

第一种处理方法代表硬件命令。系统使用消息位作为信号源来触发特定操作。第二种处理方法代表软件命令,因为驱动程序软件会处理发送到主机的事件。数据转发示例实现了这两种命令类型,但重点在于软件命令。